iT邦幫忙

0

iOS工程師面試深入淺出- 物件導向的三大特性?

  • 分享至 

  • xImage
  •  

iOS工程師面試深入淺出- 物件導向的三大特性?

這題乍看之下是很本科系的問題,但事實上,當你在開發的過程中其實一直用到物件導向的概念。因為你平常就是在使用這個“特性”,而沒有使用過沒有這個“特性”的語言,自然而然就把這個“特性”當作原本就有的東西了。
因此,要暸解物件導向,必須要先了解非物件導向。

Refactor 專案時,會用到物件導向的特性。如果沒有這個概念,一樣可以寫出一個app,只是寫出來的程式不會那麼“漂亮”。

這題是在問什麼?

你對物件導向理解的程度,以及你是如何開發專案的。

面試怎麼回答?

理論誰都會背,請以實作的經驗說明。

1. 簡述物件導向的三大特性

繼承,封裝,多型

2. 使用這些特性的情境

當物件有相似的 property 或是 method 我可以讓子類繼承,子類就會有父類的特性。比如我想要客製化UIViewController,那麼我可以繼承UIViewController,此時我自定義的類別就會有UIViewController的特性。

此時,我自定義的UIViewController,有些property與method不想給外面的人看到,那個我可以利用 access control,讓外面的類別無法存取該property 或 method。這就是封裝。

繼承或讓子類別完全擁有父類別的特性,但是有時候我會想要覆寫原有的特性,那麼我可以overwrite,這就是多型。

3.延伸問題:

swift/OC 可以多重繼承嗎?

不行,但是可以透過protocol的特性做到類似的效果。

總結:

這題是非常基礎的問題,但是也不容易懂。物件導向需要一定的開發經驗才會慢慢理解。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言